<script>
    import axios from "axios";

    export default {
      name: "BaseRequestComponent",
      props: {
        // 请求数据的头部
        headers:{
          type: Object,
          default: null
        },
        // 请求数据的response类型
        responseType:{
          type: String,
          default: ""
        },
        // getDict 这个方法返回的数据对应映射的名称
        getDictResultMap:{
          type: Object,
          default: ()=>{
            return {
              status:'status',
              data:'data',
              total:'data.total',
              list:'data.list',
            }
          },
        },
        // getDict 这个方法返回成功后的状态
        getDictSuccessStatus:{
          type: Number,
          default: 200,
        },
        // 创建的时候是否就立马请求数据
        createdRequest:{
          type: Boolean,
          default: ()=>true
        },
      },
      methods:{
        getDict(url,params,method = 'get') {
          let params_ = {
            url: url,
            method: method,
            params: params,
            data: params,
          }
          if (this.responseType){
            params_.responseType = this.responseType
          }
          if (this.headers){
            params_.headers = this.headers
          }
          if (method=='get'){
            return axios.get(url,{...params_})
          }
          if (method=='post'){
            delete params_.params
            return axios.post(url,params_.data,{...params_})
          }
        },
      }
    }
</script>
